import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import seaborn as sn

import warnings
warnings.filterwarnings('ignore')

# 描3个点绘制曲线
# plt.plot([1, 3, 5], [4, 8, 10])
# plt.show()


# 横坐标取-3.14到3.14之间的100个点，纵坐标取其正玄值，即绘制正玄曲线
# x = np.linspace(-np.pi, np.pi, 100)
# plt.plot(x, np.sin(x))
# plt.show()


# 同时绘制四条曲线
# x = np.linspace(-np.pi * 2, np.pi * 2, 100)
# # 创建图标，设置精度
# plt.figure(1, dpi=50)
# for i in range(1, 5):
#     plt.plot(x, np.sin(x/i))
# plt.show()

# 绘制直方图
# plt.figure(2, dpi=100)
# # 数值本身是横坐标，出现次数是纵坐标
# data = [1, 1, 1, 2, 2, 2, 3, 3, 4, 5, 5, 6, 4]
# plt.hist(data)
# plt.show()

# 绘制散点图
# x = np.arange(1, 10)
# y = x * 2
# # c表示颜色，r红色，g绿色，marker表示点的形状，o圆，s正方形，p五角，*星星
# plt.scatter(x, y, c='g', marker='o')
# plt.show()

# 从文件读取数据绘制
iris = pd.read_csv("./iris_training.csv")
# 读取前面几行
print(iris.head())
#    120    4  setosa  versicolor  virginica
# 0  6.4  2.8     5.6         2.2          2
# 1  5.0  2.3     3.3         1.0          1
# 2  4.9  2.5     4.5         1.7          2
# 3  4.9  3.1     1.5         0.1          0
# 4  5.7  3.8     1.7         0.3          0
# 绘制散点图，横坐标是120的列，纵坐标是4的列
# iris.plot(kind='scatter', x='120', y='4')
# plt.show()

# 利用seaborn库绘制散点图
sn.set(style='white', color_codes=True)
# sn.jointplot(x='120', y='4', data=iris, size=5)
# sn.distplot(iris['120'])
# plt.show()

# 以virginica列的数据数值的不同，绘制不同的颜色
sn.FacetGrid(iris, hue='virginica', size=5).map(plt.scatter, '120', '4').add_legend()
plt.show()

